home *** CD-ROM | disk | FTP | other *** search
/ User's Choice Windows CD / User's Choice Windows CD (CMS Software)(1993).iso / misc1 / muzidex2.zip / START.SBP < prev    next >
Text File  |  1992-02-28  |  16KB  |  864 lines

  1. SBP
  2.   ╜ MuZidex - Copyright POD Associates Inc. January 5, 1992
  3.   ╜
  4.   ╜ Last Update: 02/25/1992
  5.   ╜
  6.   ╜     Database Design:
  7.   ╜
  8.   ╜            Jim Brandvold
  9.   ╜
  10.   ╜     Programmers:
  11.   ╜            
  12.   ╜            Jim Brandvold 
  13.  
  14. mloop: ╜ Main Loop & Menu item selection
  15.   │ _ wferror
  16.   ╜ 
  17.   ╜ Inputs : return_to%, err%
  18.   ╜ Outputs: NONE
  19.   ╜
  20.   ╜ This routine controls access to the rest of the program.
  21.   ╜ The first time through return_to% will be initialized by the system to 0
  22.   ╜ so sinit will be called to set up initial parameters.  Sinit then sets
  23.   ╜ return_to% to 1 (1=Local return) (>1=Chain return) for the next pass.
  24.   ╜ To allow files to be "CHAINed" to this one, before calling CHAIN set
  25.   ╜ the variable return_to% to a return value > 1, then modify the following 
  26.   ╜ "ON return_to% GOTO routinename ..." statement to reflect the new routine
  27.   ╜ label.  The routine that is returned to should set return_to = 1.  Chained
  28.   ╜ routines should trap their own errors but only set err% = ERRNO and chain back
  29.   ╜ to this routine.  Modify ferror to handle the errors expected.
  30.   ╜
  31.   í(err% 0) p wferror
  32.   ▀ e
  33.   í(return_to% 1) p
  34.  ╜ Returning from another routine
  35.  í( £ banner$)  (return_to% 1) p ┤ £banner$
  36.  íreturn_to% 1 p
  37.  vsmenu
  38.  ^
  39.  │return_to% wsmenu,VEB,AlbumEntryH,SongEntryH,AlbumQueryH,SongQueryH,WideAreaH
  40.  Æ í
  41.   ^
  42.  ╜ First Time Through
  43.  í σsys(7) 
  44. 400 pvga$ "n" ^vga$ "y"
  45.  ívga$ "y" pbanner$ "Music" ^banner$ "Music"
  46.  vsinit
  47.   Æ í
  48.  
  49.   ¼ │ma%,mb%
  50.   ╩ ╦"Select pulldown menu option"
  51.   ╩ ƒ"MuZidex"
  52.   ╪ Oma%
  53.  ╜ IF h2% <> MINS ( NOW ) THEN GOSUB shead
  54.   ┘
  55.   íma% 
  56. 5 p ¼ à
  57.   │ma% wm1,m2,m3,m4
  58.  
  59. sinit:  ╜ Initialize first time thru
  60.   ç
  61.   Γ e
  62.   ╩ ƒ"A POD Product"
  63.   ╩ ┬ ƒ"A POD Product"
  64.   ╩ ╦"A POD Product"
  65.   ¼ à
  66.   ┤ £"music1"
  67.   ╧ ¢15
  68.   ╧ ▀
  69.  song% 0
  70.  song_date% 1
  71.  return_to% 1
  72.  datsm% 1955
  73.  datlg% 1992
  74.  sonsm% 0
  75.  sonlg% 30
  76.  qury% 0
  77.  albumt% 0
  78.  albumq% 0
  79.  songt% 0
  80.  songq% 0
  81.  CD% 1
  82.  Recrd% 1
  83.  Cassette% 1
  84.  Video% 1
  85.  EightTrack% 1
  86.  ReelToReel% 1
  87.   Γ e
  88.  special$ "AC/DCHighway To Hell"
  89.   ï"dd/mm/yyyy"
  90.   ï"hh:mm:ss"
  91.   å t: ╩ f │: ╦ │: ▓"999990.00000"
  92.   ╩ ƒ"MuZidex"
  93.   ╩ ╦"Initializing Application..."
  94.   ╩ ┬ ƒ"MuZidex"
  95.   ¼ à
  96.   ┤ £banner$
  97.  
  98. smenu:  ╜ Define Pulldown Menus
  99.   ¼1,0,1,"&Data Entry"
  100.   ¼1,1,1,"&Enter Data"
  101.   ¼2,0,1,"&Query"
  102.   ¼2,1,1,"Search For A &Song"
  103.   ¼2,2,1,"Search For A &Group"
  104.   ¼2,3,1,"Search For An &Album"
  105.   ¼2,4,1,"&Wide Area Search"
  106.   ¼2,5,1,"&Print Database"
  107.   ¼3,0,1,"E&xit"
  108.   ¼3,1,1,"&Quit"
  109.   ¼4,0,1,"&Help"
  110.   ¼4,1,1,"&Index"
  111.   ¼4,2,1,"&General Information"
  112.   ¼4,3,1,"&Data Entry"
  113.   ¼4,4,1,"&Album Data Entry"
  114.   ¼4,5,1,"&Song Data Entry"
  115.   ¼4,6,1,"Data &Query"
  116.   ¼4,7,1,"&Group/Album Searches"
  117.   ¼4,8,1,"S&ong Searches"
  118.   ¼4,9,1,"&Wide Area Searches"
  119.   ¼4,10,1,"------------------------------------"
  120.   ¼4,11,1,"A&bout MuZidex"
  121.   ├
  122.  
  123. shead: 
  124.   ╩ ƒ"MuZidex"
  125.   ├
  126.  
  127. m1: ╜ ma%= 1 Database Menu Options 
  128.  selkey$ "":selkey% 0
  129.   wVEB
  130.  
  131. m2: ╜ ma%=2 Data Query
  132.   ╩ ƒ"MuZidex Query Tool"
  133.   ╩ ╦"Continue or Cancel"
  134.  qury% 1
  135.   ímb% 2 p
  136. mb% mb% 1
  137. AlbmQ% 1
  138.   ^
  139. AlbmQ% 0
  140.   Æ í
  141.   ╔ µmb%
  142.   µ1:
  143. SongQRet: 
  144.  ┤ Ö"songs"
  145. songt%  A("songs")
  146.  
  147.   ╜  SELECT WHERE ASK  *** Not User Friendly Replaced with following code
  148.  ┬"Enter the SONG name","OR a PORTION of the name",4,ret%,SongNameRet$
  149.  íret% 0 p wmloop
  150. SngQury$ "*" SongNameRet$ "*"
  151.  ╔ ╨song_name  SngQury$
  152.  
  153. songq% 0
  154.  ╔ `
  155.  ╪ O B("songs")
  156. songq% songq% 1
  157.  ╔ ▒
  158.  ┘
  159.  ísongq% 0 p
  160.  ┬"No Records selected!","Do you want to try again?",130,ans%
  161.  å Ö"songs"
  162.  íans% 1 p
  163.  wSongQRet
  164.  ^
  165.  wmloop
  166.  Æ í
  167.  Æ í
  168.  ╔ `
  169.  ┤ Ö"audio"
  170. special3$ special_field.songs
  171.  ╔ ╨special_field.audio special3$
  172.  ╔ ` Ö"audio"
  173. AlbumName$ album_name.audio
  174. GroupName$ group_name.audio
  175.  
  176. recordnumber% 1
  177.  ┤ £"songqu"
  178.  
  179. sel% 0
  180.  ╪sel% 0
  181.  ╧ ▀
  182.  ísel% 0 p
  183. special3$ special_field.songs
  184.  ╔ ╨ Ö"audio"special_field.audio special3$
  185.  ╔ ` Ö"audio"
  186. AlbumName$ album_name.audio
  187. GroupName$ group_name.audio
  188.  £ ╚
  189.  Æ í
  190.  ┘
  191.  å Ö"audio"
  192.  å Ö"songs"
  193.   µ2:
  194. AlbumQRet: 
  195.  ┤ Ö"audio"
  196. albumt%  A("audio")
  197.  
  198.  ╜ SELECT WHERE ASK    OUser Friendly Replaced with following code
  199.  íAlbmQ% 1 p
  200.  ┬"Enter the ALBUM name","OR a PORTION of the name",4,ret%,AlbumNameRet$
  201.  íret% 0 p wmloop
  202. AlbmQury$ "*" AlbumNameRet$ "*"
  203.  ╔ ╨album_name  AlbmQury$
  204.  ^
  205.  ┬"Enter the GROUP name","OR a PORTION of the name",4,ret%,AlbumNameRet$
  206.  íret% 0 p wmloop
  207. AlbmQury$ "*" AlbumNameRet$ "*"
  208.  ╔ ╨group_name  AlbmQury$
  209.  Æ í
  210.  
  211. albumq% 0
  212. recordnumber% 1
  213.  ┤ Ö"audio"
  214.  ╔ `
  215.  ╪ O B("audio")
  216. albumq% albumq% 1
  217.  ╔ ▒
  218.  ┘
  219.  íalbumq% 0 p
  220.  ┬"No Records selected!","Do you want to try again?",130,ans%
  221.  å Ö"audio"
  222.  íans% 1 p
  223.  wAlbumQRet
  224.  ^
  225.  wmloop
  226.  Æ í
  227.  Æ í
  228.  ┤ £"albumqu"
  229.  ╔ `
  230.  £ ╚
  231. sel% 0
  232.  ╪sel% 0
  233.  ╧ ▀
  234.  ┘
  235.  å Ö"audio"
  236.   µ3:
  237. WideAreaH: 
  238. return_to% 1
  239.  ┤ £"SetQuery"
  240. sel% 0
  241. quryreturn: 
  242.  ╪sel% 0
  243.  ╧ ▀
  244.  ┘
  245.   µ4: ╜ Print
  246.  ┤ £"printer"
  247. sel% 1
  248.  ┬"Feature not available in Shareware Version","Register Today!",139
  249.  wmloop
  250.   Æ ╔
  251.  qury% 0
  252.   wmloop
  253.  
  254. m3: ╜ ma%=3 Exit 
  255.   │mb% wm31
  256. 
  257. 
  258. m31: ╜ OR Exit
  259.   ╩ ┬ ƒ"Exit MuZidex"
  260.   ┬"Confirm Exit...","",148,n%
  261.   ín% 0 wmloop
  262.   å t: ╩ ƒ"": ╩ ┬ ƒ"": ╗
  263.  
  264. m4: ╜ ma=4% Help
  265.  sel% 0
  266.  selector% mb%
  267. HelpLoop:  ╜ entry point for context sensitive help 
  268.   ╔ µselector%
  269.  µ1:
  270.  ┤ £"helpidx"
  271.  µ2: ╜ General Information
  272.  ┤ £"helpgi"
  273.  µ3: ╜ Data Entry
  274.  ┤ £"helpde"
  275.  µ4: ╜ Album Entry
  276.  ┤ £"helpae"
  277.  µ5: ╜ Song Entry
  278.  ┤ £"helpse"
  279.  µ6: ╜ Data Query
  280.  ┤ £"helpdq"
  281.  µ7: ╜ Album Search
  282.  ┤ £"helpaq"
  283.  µ8: ╜ song search
  284.  ┤ £"helpsq"
  285.  µ9: ╜ Wide Area Search
  286.  ┤ £"helpwa"
  287.  µ10: ╜ Dummy Line
  288.  wmloop
  289.  µ11: ╜ About MuZidex
  290.  ┤ £"about"
  291.   Æ ╔
  292.  
  293.   ╪(sel% 0) (sel% 1)
  294.  í(sel% 1) p
  295. sel% 0
  296.  £2
  297.  Æ í
  298.  ╧ ▀
  299.   ┘
  300.  
  301. HelpExit: 
  302.   wmloop
  303.  
  304. AlbumEntryH:  ╜ Return label for help
  305.  return_to% 1
  306.   ┤ £"albumde.sbv"
  307.   ╔ ╨special_field  special$
  308.   ╔ `
  309.   £ ╚
  310.   ╔ ╨
  311.   wfloop
  312. 
  313. VEB: ╜ View, Edit, Browse
  314.   ▓"999990.00000"
  315.  Album% 0
  316.  
  317.  f$ "Audio":fkey$ "group_Name":fmd$ "AlbumDE":fmp$ "stkc2"
  318.  
  319.  
  320. 
  321.   ┤ Öf$
  322.   úfkey$
  323.   í £ fmd$ p ┤ £fmd$
  324.  ind$  ú
  325.   ╜ GOSUB sset
  326.   ╩ ƒ"MuZidex DataBase Access"
  327.  
  328.   ╜ File Forms have command only on page 1 to select form on selkey
  329.   ╜ FORM 2
  330.   £ ╚
  331.   Γ e
  332.   wfwait
  333.  
  334. floop: 
  335.   ╜ GOSUB sset
  336.   ╜ GOSUB ssearch
  337.   ╬
  338.  
  339. fwait:  ╜ wait here for pushbutton
  340.  ed% 1
  341.   ╩ ╦"Select a pushbutton option"
  342.   ╧ ▀
  343.   wfwait
  344.  
  345. fedit:  ╜ Edit Pushbutton
  346.   ╜ DEBUG ON ,100
  347.   ╩ ╦"Use TAB or click on field to be edited.  ESC when done."
  348.   ▀ │
  349.   íqury% 1 p wfeditqury
  350.   ┬"Do you want a COPY of this record?","Selecting No will modify THIS record.",130,a%
  351.   ía% 1 p
  352.  ü ]
  353.   Æ í
  354.  
  355. editloop: 
  356.  
  357.   ╔ µsong%
  358.  µ0:
  359.  ía% 1 p
  360. album_name  "New Name"
  361.  öalbum_name,0
  362.  íalbum_name  "New Name" p
  363.      ┬"You MUST change the ID field.","",2
  364.      weditloop
  365.  Æ í
  366.  ^
  367. specialFirst$ special_field
  368.  öalbum_name,0
  369.  Æ í
  370.  µ1:
  371.  ía% 1 p
  372. song_name  "New Name"
  373.  ösong_name,0
  374.  ísong_name  "New Name" p
  375.      ┬"You MUST change the ID field.","",2
  376.      weditloop
  377.  Æ í
  378.  íSong_Length  0 p
  379.     song_Length   8("0.0.0")
  380.  Æ í
  381.  ^
  382.  ösong_name,0
  383.  íSong_Length  0 p
  384.     song_Length   8("0.0.0")
  385.  Æ í
  386.  Æ í
  387.   Æ ╔
  388.   wfedit2 
  389.  
  390. feditqury: 
  391.  ösong_name  qAlbum_name
  392. 
  393. fedit2: 
  394.   ▀ e
  395.   ┬"Is entry correct?",""134,a%
  396.   ía% 1 p
  397.  ╠: ╜ Stores edited data
  398.  í(song% 0)  (qury% 0) p
  399. specialNew$ special_field.audio
  400.  íspecialNew$ specialFirst$ p
  401.  ┤ Ö"songs"
  402.  ═special_field.songs specialNew$
  403.  ╨special_field.songs specialFirst$
  404.  Æ ═
  405.  å Ö"songs"
  406.  Æ í
  407.  Æ í
  408.   ^ ía% 0 p
  409.  ▀ │
  410.  ╔ £ Y: ╜ Re-display form as before edit
  411.   ^ ía% 2 p
  412. a% 0
  413.  ▀ │
  414.  weditloop
  415.   Æ í
  416.  
  417.   ísong% 1 p
  418.  ╔ ╨special_field  special$
  419.  ╔ `
  420.   ^
  421.  ╔ `
  422.   Æ í
  423.  
  424.   íqury% 1 p wquryreturn
  425.   wfloop
  426.  
  427. fenter:  ╜ New Entry Pushbutton
  428.   │ _ wferror
  429.   ╩ ƒ"Add To MuZidex"
  430.   £2
  431.   ╩ ╦"Enter data for new record.  ESC when done."
  432.  
  433. AE1:  ╜ Actual guts of the Add routine.  Checks for a blank form for an
  434.  ╜ end-of-entry
  435.   ü £
  436.   ╬
  437. editloop2: 
  438.   ▀ │
  439.   ╔ µsong%
  440.  µ0:
  441.  öalbum_name,0
  442.  
  443.  µ1:
  444. special_field  special$
  445.  ösong_name,0
  446.  íSong_Length  0 p
  447. song_Length   8("0.0.0")
  448.  Æ í
  449.  
  450.   Æ ╔
  451.   ▀ e
  452.  b% 0
  453.   ┬"Is entry correct?","",134,a%
  454.   ía% 1 p
  455.  ╠ £
  456.  ╔ £ Y
  457.  ┬"Continue with data entry?","",130,b%
  458.   ^ ía% 2 p
  459.  weditloop2
  460.   ^ ía% 0 p
  461.  ╔ £ Y
  462.   Æ í
  463.   íb% 1 p wAE1
  464.   ísong% 1 p
  465.  ╔ ╨special_field  special$
  466.  ╔ `
  467.   ^
  468.  ╔ `
  469.   Æ í
  470.  
  471.   wfloop
  472.  
  473. fdelete:  ╜ Delete Pushbutton
  474.   ╩ ╦"WARNING!  Data will be lost."
  475.   ▀ e
  476.   ísong% 0 p
  477.  ┬"Do you REALLY want to delete this Album?","This operation will also remove the songs associated with this album!",143,a%
  478. special$ special_field.audio
  479.  ┤ Ö"songs"
  480.  ╛ a Ö"songs" ╨special_field.songs special$
  481.  å Ö"songs"
  482.   ^
  483.  ┬"Do you REALLY want to delete this Song?","",143,a%
  484.   Æ í
  485.   ía% 1 p
  486.  ▀ │
  487.  ╔ ╛
  488.  ╔ £ `: ╜ Display first record.
  489.   ^
  490.  ╔ £ Y: ╜ Re-display form as before delete.
  491.   Æ í
  492.   ísong% 1 p
  493.  ╔ ╨special_field  special$
  494.  ╔ `
  495.   ^
  496.  ╔ `
  497.   Æ í
  498.   wfloop
  499. 
  500. findex:  ╜ allow user to adjust index for browsing
  501.   ╩ ╦"Select new Index for Browsing"
  502.   ▀ │
  503.   ┬"Select new index","",7,ret%,ret$
  504.   íret$ "" p úret$
  505.   ísong% 1 p
  506.  ╔ ╨special_field  special$
  507.  ╔ `
  508.   ^
  509.  ╔ `
  510.   Æ í
  511.   wfloop
  512.  
  513. fsongs:  ╜ set up songs
  514. SongEntryH:  ╜ Return label for help
  515.  return_to% 1
  516.   ┤ Ö"songs"
  517.   úSong_Number
  518.   ╔ ╨special_field  special$
  519.   ╔ `
  520.   ┤ £"songde"
  521.   wfloop
  522.  
  523. fsongexit:  ╜ Exit from Song FORM and get the current record
  524.  song% 0
  525.   ┤ £"albumde.sbv"
  526.   ╔ ╨special_field  special$
  527.   ╔ `
  528.   £ ╚
  529.   ╔ ╨
  530.   wfloop
  531.  
  532. Fsearch:  ╜ Setup and run query
  533.  recordnumber% 1
  534.   ▀ e
  535.   í J("tempqury.sbf") p
  536.  ì("tempqury.sbf")
  537.   Æ í
  538.  
  539.   í(Rock% Classical% Country% Blues% Jazz% Pop% Comedy% Ragge% Soundtrack% NewAge% NewWave% Other% Childrens% Religious% Christmas%) 0 p
  540.  ▀ │
  541.  ┬"You MUST select AT LEAST one Music Type","",139
  542.  wquryreturn
  543.   Æ í
  544.  
  545.   í(CD% Recrd% Cassette% Video% EightTrack% ReelToReel%) 0 p
  546.  ▀ │
  547.  ┬"You MUST select AT LEAST one Storage Media","",139
  548.  wquryreturn
  549.   Æ í
  550.  
  551.   íRock% 1 p
  552. S1$ "Rock-N-Roll"
  553.   ^
  554. S1$ "XXXX"
  555.   Æ í
  556.   íClassical% 1 p
  557. S2$ "Classical"
  558.   ^
  559. S2$ "XXXX"
  560.   Æ í
  561.   íCountry% 1 p
  562. S3$ "Country"
  563.   ^
  564. S3$ "XXXX"
  565.   Æ í
  566.   íBlues% 1 p
  567. S4$ "Blues"
  568.   ^
  569. S4$ "XXXX"
  570.   Æ í
  571.   íJazz% 1 p
  572. S5$ "Jazz"
  573.   ^
  574. S5$ "XXXX"
  575.   Æ í
  576.   íPop% 1 p
  577. S6$ "Pop"
  578.   ^
  579. S6$ "XXXX"
  580.   Æ í
  581.   íRagge% 1 p
  582. S7$ "Ragge"
  583.   ^
  584. S7$ "XXXX"
  585.   Æ í
  586.   íSoundtrack% 1 p
  587. S8$ "Soundtrack"
  588.   ^
  589. S8$ "XXXX"
  590.   Æ í
  591.   íComedy% 1 p
  592. S9$ "Comedy"
  593.   ^
  594. S9$ "XXXX"
  595.   Æ í
  596.   íNewAge% 1 p
  597. SA$ "New Age"
  598.   ^
  599. SA$ "XXXX"
  600.   Æ í
  601.   íNewWave% 1 p
  602. SB$ "New Wave"
  603.   ^
  604. SB$ "XXXX"
  605.   Æ í
  606.   íOther% 1 p
  607. SC$ "Other"
  608.   ^
  609. SC$ "XXXX"
  610.   Æ í
  611.   íChildrens% 1 p
  612. SE$ "Childrens"
  613.   ^
  614. SE$ "XXXX"
  615.   Æ í
  616.   íChristmas% 1 p
  617. SF$ "Christmas"
  618.   ^
  619. SF$ "XXXX"
  620.   Æ í
  621.   íReligious% 1 p
  622. SG$ "Religious"
  623.   ^
  624. SG$ "XXXX"
  625.   Æ í
  626.  
  627.   íCD% 1 p
  628. M1$ "Compact_Disk"
  629.   ^
  630. M1$ "X"
  631.   Æ í
  632.   íRecrd% 1 p
  633. M2$ "Record"
  634.   ^
  635. M2$ "X"
  636.   Æ í
  637.   íCassette% 1 p
  638. M3$ "Tape"
  639.   ^
  640. M3$ "X"
  641.   Æ í
  642.   íVideo% 1 p
  643. M4$ "Video"
  644.   ^
  645. M4$ "X"
  646.   Æ í
  647.   íEightTrack% 1 p
  648. M5$ "8-Track"
  649.   ^
  650. M5$ "X"
  651.   Æ í
  652.   íReelToReel% 1 p
  653. M6$ "Reel-to-Reel"
  654.   ^
  655. M6$ "X"
  656.   Æ í
  657.  
  658.  dtrstr1$ "01 01 "  (datsm%,"z9999.")
  659.  datestart%  1(dtrstr1$)
  660.  dtrstr2$ "01 01 "  (datlg%,"z9999.")
  661.  dateend%  1(dtrstr2$)
  662.  
  663.   ┤ Ö"audio"
  664.   íalbumdate% 0 p
  665.  
  666.  ╔ t
  667.  ╨st.audio S1$ 
  668. st.audio S2$ 
  669. st.audio S3$ 
  670. st.audio S4$ 
  671. st.audio S5$ 
  672. st.audio S6$ 
  673. st.audio S7$ 
  674. st.audio S8$ 
  675. st.audio S9$ 
  676. st.audio SA$ 
  677. st.audio SB$ 
  678. st.audio SC$ 
  679. st.audio SE$ 
  680. st.audio SF$ 
  681. st.audio SG$ 
  682. (source_name  M1$ source_name  M2$ source_name  M3$ source_name  M4$ source_name  M5$ source_name  M6$)
  683.  q Ö"tempqury"
  684.  
  685.   ^
  686.  ╔ t
  687.  ╨st.audio S1$ 
  688. st.audio S2$ 
  689. st.audio S3$ 
  690. st.audio S4$ 
  691. st.audio S5$ 
  692. st.audio S6$ 
  693. st.audio S7$ 
  694. st.audio S8$ 
  695. st.audio S9$ 
  696. st.audio SA$ 
  697. st.audio SB$ 
  698. st.audio SC$ 
  699. st.audio SE$ 
  700. st.audio SF$ 
  701. st.audio SG$ 
  702. (source_name  M1$ source_name  M2$ source_name  M3$ source_name  M4$ source_name  M5$ source_name  M6$) 
  703. (date.audio datestart%)  (date.audio     dateend%)
  704.  q Ö"tempqury"
  705.  
  706.   Æ í
  707.  albumt%  A("audio")
  708.   å Ö"audio"
  709.   ┤ Ö"tempqury"
  710.  albumq%  A("tempqury")
  711.   å Ö"tempqury"
  712.  
  713.   ísong_length% 1 p
  714. lenstart$ "0."  (sonsm%,"99.") ".0"
  715. tstart%  8(lenstart$)
  716. 
  717. lenend$ "0."  (sonlg%,"99.") ".0"
  718. tend%  8(lenend$)
  719.  
  720.  ┤ Ö"tempqury"
  721.  
  722.  ╔ ` Ö"tempqury"
  723.  
  724.  ┤ Ö"Songs"
  725.  ┤ Ö"tempqur2"
  726.  ╛ a Ö"tempqur2"
  727.  
  728.  ╪ O B("tempqury")
  729. special$ special_field.tempqury
  730.  ╔ ╨ Ö"songs"(special_field.songs special$)  (( 8(song_length.songs) tstart%)  ( 8(song_length.songs)     tend%))
  731.  ╔ ` Ö"songs"
  732.  ╪ O B("songs")
  733.      ü Ö"tempqur2"
  734.     song_name.tempqur2 song_name.songs
  735.     special_field.tempqur2 special_field.songs
  736.     Song_Number.tempqur2 Song_Number.songs
  737.     Song_Length.tempqur2 Song_Length.songs
  738.      ╠ Ö"tempqur2"
  739.      ╔ ▒ Ö"songs"
  740.  ┘
  741.  ╔ ▒ Ö"tempqury"
  742.  ┘
  743.  
  744. songt%  A("songs")
  745.  å Ö"songs"
  746. songq%  A("tempqur2")
  747.  å Ö"tempqur2"
  748.   Æ í
  749.  
  750.   ísong_length% 0 p
  751.  íalbumq% 0 p
  752.  ┬"No Records selected!","Do you want to try again?",130,ans%
  753.  íans% 1 p
  754.  wWideAreaH
  755.  ^
  756.  wmloop
  757.  Æ í
  758.  Æ í
  759.  ┤ £"albumqu2"
  760. sel% 0
  761.  ╪sel% 0
  762.  ╧ ▀
  763.  ┘
  764.  å Ö"tempqury"
  765.   ^
  766.  ísongq% 0 p
  767.  ┬"No Records selected!","Do you want to try again?",130,ans%
  768.  íans% 1 p
  769.  wWideAreaH
  770.  ^
  771.  wmloop
  772.  Æ í
  773.  Æ í
  774.  ┤ £"songqu2"
  775.  ┤ Ö"tempqury"
  776. sel% 0
  777.  ╪sel% 0
  778.  ísel% 0 p
  779. special3$ special_field.tempqur2
  780.  ╔ ╨special_field.tempqury special3$
  781.  ╔ ` Ö"tempqury"
  782. AlbumName$ album_name.tempqury
  783. GroupName$ group_name.tempqury
  784.  £ ╚
  785.  Æ í
  786.  ╧ ▀
  787.  ┘
  788.  å Ö"tempqury"
  789.  å Ö"tempqur2"
  790.   Æ í
  791.  
  792.  sel% 1
  793.   wquryreturn
  794.  
  795.  
  796. spanel: 
  797.   │ _ wserror
  798.  err% 0
  799.   ╩ ╦"Browse Mode activated, use STOP to exit."
  800.  
  801. spanel2: 
  802.   ╧ Γ
  803.   │ _ wferror
  804.   ╔ ╨
  805.   íerr% 1 p é │
  806.  err% 0
  807.   ╜ GOSUB sset
  808.   wfloop
  809.  
  810. serror:  é e
  811.   ┬ (( &),"",2,a%
  812.  err% 1
  813.   ╔ £ Y: yspanel2
  814.  
  815. sset: 
  816.   ík% 1 pckey$ fkey$$
  817.   ík% 2 pckey% fkey$$
  818.  
  819. ssearch: 
  820.   ╔ £ Ñind$$
  821.  
  822. ssearch2:  ╜ loop until correct record found
  823.   ík% 1 p ífkey$$ ckey$ p ├
  824.   ík% 2 p ífkey$$ ckey% p ├
  825.   ╔ £ ▒
  826.   wssearch2
  827.  
  828. fexit: 
  829.   å Öf$
  830.   wmloop
  831.  
  832. ferror:  ╜ general error trap
  833.  res% 0
  834.   ╜ a% = ERRNO :A$ = STR$ (a%)
  835.   ╜ REQUEST A$,"",139
  836.   í( & 11) (err% 11) p
  837. res% 11
  838.   ^ í & 57 p
  839.  ┬"Record already exists with this key",""2,a%:res% 2
  840.   ^ í & 50 p
  841. res% 4
  842.   ^ í( & 3) ( & 4) (err% 3) (err% 4) p
  843.  ┬"Print Command Failed","Printer Off or Not On-Line",139
  844. res% 5
  845.   ^
  846.  ┬ (( &),"Press OK to make another selection",114,a%: ía% 1 pres% 3
  847.   Æ í
  848.  
  849.   íerr% 0 p
  850.  íerr% 1 perr% 0: wmloop
  851.  íerr% 3 perr% 0: wmloop
  852.  íerr% 4 perr% 0: ╔ £ `: wfloop
  853.   ^
  854.  íres% 1 p y
  855.  íres% 2 p yfloop
  856.  íres% 3 p ymloop
  857.  íres% 4 p ╔ £ `: yfloop
  858.  íres% 5 p yVEB
  859.  íres% 11 p ymloop
  860.   Æ í
  861.   É
  862.  
  863.  
  864.